/*
 * $URL: https://dnsprobe.googlecode.com/svn/trunk/dnsprobe/src/dnsprobe/Constants.java $
 * 
 * Copyright (c) 2009, Anonymous
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the Anonymous nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY ANONYMOUS ''AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 * EVENT SHALL ANONYMOUS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 */

package dnsprobe;

import java.awt.Color;

import dnsprobe.gui.FrontGui;
import dnsprobe.gui.listener.FrontGuiActionListener;
import dnsprobe.gui.model.IpTableModel;
import dnsprobe.net.nameserver.AccessProvider;
import dnsprobe.resolver.ResolverThread;


/**
 * Definiert verschiedene Konstanten fuer die Anwendung
 * 
 * @author BerndBernhardson
 * @author anon004
 * @author snoop
 * @version $Id: Constants.java 139 2009-07-02 10:21:09Z anonymousRepo@hellokitty.com $
 *
 */
public class Constants
{
	/**
	 * Titelzeile
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_TITLE = "Capt. Picards DNS Blocklist Probe v0.1.2";
	
	/**
	 * Button Durchsuchen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_BUTTON_BROWSE = "Browse";
	
	/**
	 * Button Starten
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_BUTTON_START = "Fire!";
	
	/**
	 * Button Stoppen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_BUTTON_STOP = "Stop";
	
	/**
	 * Button Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_BUTTON_EXPORT = "Export";
	
	/**
	 * Label Durchsuchen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_BROWSE = "<-- Click Here To Select Your Host List File (.txt)";
	
	/**
	 * Label Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_EXPORT = "Export Results to Textfile ->";
	
	/**
	 * Label Gesamtes Ergebnis Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_EXPORT_CHOICE_ALL = "Export Whole List";
	
	/**
	 * Label Unterschiede Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_EXPORT_CHOICE_DIFF = "Export Diffrences only";
	
	/**
	 * Label Unterschiede Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_EXPORT_CHOICE_EQUAL = "Export Equal only";
	
	/**
	 * Label Status Query
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_PROGRESS_QUERY = "Query Progress";
	
	/**
	 * Label Status Vergleichen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_LABEL_PROGRESS_COMPARE = "Comparing Progress";
	
	/**
	 * Ergebnis-Tabelle Kopfzeile Hostname
	 * 
	 * @see IpTableModel
	 */
	public static final String GUI_TABLE_HEADER_HOSTNAME = "Hostname";
	
	/**
	 * Ergebnis-Tabelle Kopfzeile Hostname
	 * 
	 * @see IpTableModel
	 */
	public static final String GUI_TABLE_HEADER_OPENDNS = "Open DNS answer";
	
	/**
	 * Ergebnis-Tabelle Kopfzeile Hostname
	 * 
	 * @see IpTableModel
	 */
	public static final String GUI_TABLE_HEADER_USERDNS = "Your DNS answer";
	
	/**
	 * Vordergrundfarbe bei keinem Ergebnis
	 */
	public static final Color GUI_TABLE_FOREGROUND_COLOR_NO_RESULT = Color.BLACK;
	
	/**
	 * Hintergrundfarbe bei keinem Ergebnis
	 */
	public static final Color GUI_TABLE_BACKGROUND_COLOR_NO_RESULT = Color.WHITE;
	
	/**
	 * Vordergrundfarbe bei gleichen Ergebnissen
	 */
	public static final Color GUI_TABLE_FOREGROUND_COLOR_EQUAL = Color.BLACK;
	
	/**
	 * Hintergrundfarbe bei gleichen Ergebnissen
	 */
	public static final Color GUI_TABLE_BACKGROUND_COLOR_EQUAL = Color.GREEN;
	
	/**
	 * Vordergrundfarbe bei verschiedenen Ergebnissen
	 */
	public static final Color GUI_TABLE_FOREGROUND_COLOR_NOT_EQUAL = Color.WHITE;
	
	/**
	 * Hintergrundfarbe bei verschiedenen Ergebnissen
	 */
	public static final Color GUI_TABLE_BACKGROUND_COLOR_NOT_EQUAL = Color.RED;
	
	/**
	 * Dialog Datei existiert bereits Titel
	 */
	public static final String GUI_DIALOG_FILE_EXISTS_TITLE = "Overwrite file";
	
	/**
	 * Dialog Datei existiert bereits Text
	 */
	public static final String GUI_DIALOG_FILE_EXISTS_TEXT = "File already exists, replace it?";
	
	/**
	 * Nachricht Datei geladen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_MSG_IMPORT_LOADED = "Loaded file ";
	
	/**
	 * Nachricht Keine Daten zum Exportieren
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_MSG_EXPORT_NODATA = "No data for export";
	
	/**
	 * Nachricht Export fehlgeschlagen
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_MSG_EXPORT_FAIL = "Export Failed Miserably";
	
	/**
	 * Nachricht Export erfolgreich
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_MSG_EXPORT_SUCCESS = "Export Successful";
	
	/**
	 * Nachricht unbekannter Host
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_MSG_RESOLV_UNKNOWN_HOST = "Unknown host";
	
	/**
	 * Nachricht Aufloeseprozess starten
	 */
	public static final String GUI_MSG_RESOLV_START = "Start process...";
	
	/**
	 * Nachricht Aufloeseprozess stoppen
	 */
	public static final String GUI_MSG_RESOLV_DONE = "Process done.";
	
	/**
	 * Nachricht Zeitdauer
	 */
	public static final String GUI_MSG_RESOLV_DURATION = "Duration:";
	
	/**
	 * Zeilentrenner fuer JTextArea
	 * 
	 * @see FrontGui
	 */
	public static final String GUI_TEXTAREA_LINE_SEPARATOR = "\n";
	
	/**
	 * Aktion Nameserver aendern
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_CHANGE_NAMESERVER = "changeNameserver";
	
	/**
	 * Aktion eigenen Nameserver eintragen
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_CHANGE_CUSTOM_NAMESERVER = "changeCustomNameserver";
	
	/**
	 * Aktion Host-Datei laden
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_LOAD_HOSTLIST = "chooseHostList";
	
	/**
	 * Aktion Ergebnisse exportieren
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_SAVE_EXPORT = "exportList";
	
	/**
	 * Aktion starten
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_START_RESOLVE = "resolveHostnames";
	
	/**
	 * Aktion stoppen
	 * 
	 * @see FrontGuiActionListener
	 */
	public static final String COMMAND_STOP_RESOLVE = "stopResolver";
	
	/**
	 * Export Datei-Name
	 * 
	 * @see FileHandler#writeHostListToFile(java.io.File, java.util.List, AccessProvider)
	 */
	public static final String EXPORT_FILENAME = "export.txt";
	
	/**
	 * Export Kopfzeile Hostname
	 * 
	 * @see FileHandler#writeHostListToFile(java.io.File, java.util.List, AccessProvider)
	 */
	
	public static final String EXPORT_HEADER_HOSTNAME = "Hostname";
	
	/**
	 * Export Kopfzeile OpenDNS
	 * 
	 * @see FileHandler#writeHostListToFile(java.io.File, java.util.List, AccessProvider)
	 */
	public static final String EXPORT_HEADER_OPENDNS  = "OpenDNS";
	
	/**
	 * Resource Anwendungsicon
	 * 
	 * @see FrontGui
	 */
	public static final String RESOURCE_ICON = "/pedobear.gif";
	
	/**
	 * Resource Anwendungsbanner
	 * 
	 * @see FrontGui
	 */
	public static final String RESOURCE_BANNER = "/picard.gif";
	
	/**
	 * Resource Interne Providerliste
	 * 
	 * @see FileHandler#readNameserverList()
	 */
	public static final String RESOURCE_DNSLIST = "/dnslist.txt";
	
	/**
	 * User-DNS AccessProvider
	 */
	public static final AccessProvider PROVIDER_CUSTOM = new AccessProvider("Own DNS",  "Enter IP or select from list", true);
	
	/**
	 * Open-DNS AccessProvider
	 */
	public static final AccessProvider PROVIDER_OPEN = new AccessProvider("FoeBuD DNS", "85.214.73.63", false);
	
	/**
	 * gefilterter AccessProvider
	 */
	public static final AccessProvider PROVIDER_RESTRICTED = new AccessProvider("Hansenet", "213.191.74.18", false);
	
	/**
	 * Standard gefilterter AccessProvider
	 */
	public static final AccessProvider PROVIDER_DEFAULT = PROVIDER_RESTRICTED;
	
	/**
	 * Resolver Parameter maximale Anzahl an Threads
	 * 
	 * @see ResolverThread
	 */
	public static final int RESOLVER_MAX_THREADS = 35;
	
	/**
	 * Lokales Zeilenende
	 */
	public static final String LINE_SEPARATOR = System.getProperty("line.separator");
	
	/**
	 * CSV-Trennzeichen
	 */
	public static final String CSV_SEPARATOR  = ";";
	
	/**
	 * Adress-Trennzeichen
	 */
	public static final String ADDRESS_SEPARATOR = ", ";
	
	/**
	 * leerer String
	 */
	public static final String EMPTY_STRING   = "";
	/**
	 * Wachstumsgrenze der GUI
	 */
	public static final int GUI_GROW_SIZE   = 520;
}
